package cn.geminis.manage.core.client;

import cn.geminis.manage.core.entity.Config;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Allen
 */
@FeignClient(value = "MANAGE-SERVICE", path = "/configs", primary = false)
public interface ConfigClient {

    /**
     * 获取配置信息
     *
     * @param id           配置ID
     * @param defaultValue 默认值
     * @return 配置信息
     */
    @GetMapping("/{id}")
    Config get(@PathVariable("id") String id, @RequestParam("defaultValue") String defaultValue);

    /**
     * 保存配置信息
     *
     * @param configs 配置信息
     */
    @PutMapping
    void save(@RequestBody List<Config> configs);

    /**
     * 保存配置信息
     *
     * @param config 配置信息
     */
    default void save(Config config) {
        List<Config> configs = new ArrayList<>();
        configs.add(config);
        this.save(configs);
    }
}
